package com.springboot.seckill.response;

/**
 * 包装好的返回的响应结果:
 *      - status: 表明对应请求的返回处理结果"success"或"fail"
 *      - data:   若status=success, 则data内返回前端需要的json数据
 *                若status=fail, 则data内使用通用的错误码格式
 *
 * @Author: HuangDekai
 * @Date: 2022/3/7 22:32
 * @Version: 1.0
 * @since: jdk11
 */
public class CommonReturnType {
    /**
     * 表明对应请求的返回处理结果"success"或"fail"
     */
    private String status;

    /**
     *   若status=success, 则data内返回前端需要的json数据
     *   若status=fail, 则data内使用通用的错误码格式
     */
    private Object data;

    /**
     * 定义一个通用的创建方法
     * @param result 要发送给前端的数据
     * @return CommonReturnType
     */
    public static CommonReturnType create(Object result) {
        return CommonReturnType.create(result, "success");
    }

    /**
     * 定义一个通用的创建方法
     * @param result 要发送给前端的数据
     * @param status 要发送给前端的状态
     * @return
     */
    public static CommonReturnType create(Object result, String status) {
        CommonReturnType type = new CommonReturnType();
        type.setStatus(status);
        type.setData(result);
        return type;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}
